﻿#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    sender = new QUdpSocket(this);
}

Widget::~Widget()
{
    delete ui;
}

/********************************************************************************************************
    这里定义了一个QByteArray类型的数据报datagram，其内容为“hello world!”。
    然后使用QUdpSocket类的writeDatagram()函数来发送数据报，这个函数有四个参数，
    分别是数据报的内容，数据报的大小，主机地址和端口号。对于数据报的大小，它根据平台的不同而不同，
    但是这里建议不要超过512字节。这里使用了广播地址QHostAddress::Broadcast，这样就可以同时给网络中所有的主机发送数据报了。
    对于端口号，它是可以随意指定的，但是一般1024以下的端口号通常属于保留端口号，所以我们最好使用大于1024的端口，最大为65535。
    我们这里使用了45454这个端口号，一定要注意，在下面要讲的服务器程序中，也要使用相同的端口号。
 *********************************************************************************************************/
void Widget::on_pushButton_clicked()// 开始广播
{
    QByteArray datagram = "hello world!";
    sender->writeDatagram(datagram.data(),datagram.size(), QHostAddress::Broadcast,45454);
}
